package top.datacluster.basic.algorithm.leetcode.stack;

import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

public class LeetCode71 {

    private Stack<Character> stack = new Stack<>();

    public String simplifyPath(String path) {
        String[] dirs = path.split("/");
        List<String> res = new ArrayList<>();
        int jmpCount = 0;
        for(int i = dirs.length - 1; i >= 0; i--){
            // 当前目录和空目录的情况跳过
            if(dirs[i].equals("") || dirs[i].equals(".")){
                continue;
            }
            // 如果要跳到父目录，记录一下需要跳过非" "、"."、".."的数量
            if(dirs[i].equals("..")){
                jmpCount += 1;
                continue;
            }
            // 如果之前累计的跳到父目录还有没处理完，那么当前的目录需要跳过
            if(jmpCount > 0){
                jmpCount -= 1;
                continue;
            }
            res.add(0, dirs[i]);
        }
        return "/" + String.join("/", res);
    }

    public static void main(String[] args) {
        System.out.println(new LeetCode71().simplifyPath("/a/b/..."));
    }
}
